package ru.amse.tsyganov.jumleditor.view;

import ru.amse.tsyganov.jumleditor.model.ActionState;
import ru.amse.tsyganov.jumleditor.model.ActivityGraph;
import ru.amse.tsyganov.jumleditor.model.Decision;
import ru.amse.tsyganov.jumleditor.model.FinalState;
import ru.amse.tsyganov.jumleditor.model.ForkJoinState;
import ru.amse.tsyganov.jumleditor.model.InitialState;
import ru.amse.tsyganov.jumleditor.model.State;
import ru.amse.tsyganov.jumleditor.model.Transition;
import ru.amse.tsyganov.jumleditor.view.repr.ActionStateView;
import ru.amse.tsyganov.jumleditor.view.repr.ActivityGraphView;
import ru.amse.tsyganov.jumleditor.view.repr.DecisionView;
import ru.amse.tsyganov.jumleditor.view.repr.FinalStateView;
import ru.amse.tsyganov.jumleditor.view.repr.ForkJoinStateView;
import ru.amse.tsyganov.jumleditor.view.repr.InitialStateView;
import ru.amse.tsyganov.jumleditor.view.repr.StateView;
import ru.amse.tsyganov.jumleditor.view.repr.TransitionView;

public class ViewVisitor {

	public void visitActivityGraphView(ActivityGraphView<? extends ActivityGraph> g) {}
	
	public void visitStateView(StateView<? extends State> s) {}
	
	public void visitActionStateView(ActionStateView<? extends ActionState> s) {
		visitStateView(s);
	}

	public void visitDecisionView(DecisionView<? extends Decision> s) {
		visitStateView(s);
	}
	
	public void visitFinalStateView(FinalStateView<? extends FinalState> s) {
		visitStateView(s);
	}
	
	public void visitForkJoinStateView(ForkJoinStateView<? extends ForkJoinState> s) {
		visitStateView(s);
	}
	
	public void visitInitialStateView(InitialStateView<? extends InitialState> s) {
		visitStateView(s);
	}
	
	public void visitTransitionView(TransitionView<? extends Transition> t) {}
}
